IEEE_EXCEPTIONS
Index
- NAME
-
- USAGE
-
- SYNOPSIS
-
- DERIVED-TYPE DESCRIPTION
-
- PARAMETER DESCRIPTION
-
- PROCEDURE DESCRIPTION
-
- SEE ALSO
-
- BUGS
-
NAME
ieee_exceptions - Intrinsic module providing access to IEEE exceptions
USAGE
USE,INTRINSIC :: IEEE_EXCEPTIONS
This module provides types, parameters and procedures for using IEEE exception
flags. Its contents conform to technical report ISO/IEC TR 15580:1998(E).
SYNOPSIS
- Derived Types
-
IEEE_FLAG_TYPE, IEEE_STATUS_TYPE.
- Parameters
-
IEEE_ALL, IEEE_DIVIDE_BY_ZERO, IEEE_INEXACT, IEEE_INVALID, IEEE_OVERFLOW,
IEEE_UNDERFLOW, IEEE_USUAL.
- Procedures
-
IEEE_GET_FLAG, IEEE_GET_HALTING_MODE, IEEE_GET_STATUS, IEEE_SET_FLAG,
IEEE_SET_HALTING_MODE, IEEE_SET_STATUS, IEEE_SUPPORT_FLAG,
IEEE_SUPPORT_HALTING.
DERIVED-TYPE DESCRIPTION
TYPE IEEE_FLAG_TYPE
PRIVATE
...
END TYPE
-
This type is provided for the purpose of specifying IEEE exception flags; a
value of this type indicates each particular flag.
TYPE IEEE_STATUS_TYPE
PRIVATE
...
END TYPE
-
This type is provided to allow the user to save (and restore) the current
floating-point status. The floating-point status includes the state (quiet or
signalling) of each IEEE exception flag, and the current rounding mode.
PARAMETER DESCRIPTION
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_ALL = &
(/ IEEE_USUAL,IEEE_UNDERFLOW,IEEE_INEXACT /)
-
Array specifying all IEEE exception flags.
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_DIVIDE_BY_ZERO
-
Specifies the division-by-zero exception flag.
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_INEXACT
-
Specifies the inexact exception flag.
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_INVALID
-
Specifies the invalid exception flag.
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_OVERFLOW
-
Specifies the overflow exception flag.
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_UNDERFLOW
-
Specifies the underflow exception flag.
TYPE(IEEE_FLAG_TYPE),PARAMETER :: IEEE_USUAL = &
(/ IEEE_OVERFLOW,IEEE_DIVIDE_BY_ZERO,IEEE_INVALID /)
-
Array specifying the most commonly desired subset of exception flags.
PROCEDURE DESCRIPTION
ELEMENTAL SUBROUTINE IEEE_GET_FLAG(FLAG,FLAG_VALUE)
TYPE(IEEE_FLAG_TYPE),INTENT(IN) :: FLAG
LOGICAL,INTENT(OUT) :: FLAG_VALUE
-
Sets FLAG_VALUE to .TRUE. if the specified IEEE exception flag is signalling,
and to .FALSE. otherwise.
ELEMENTAL SUBROUTINE IEEE_GET_HALTING_MODE(FLAG,HALTING_MODE)
TYPE(IEEE_FLAG_TYPE),INTENT(IN) :: FLAG
LOGICAL,INTENT(OUT) :: HALTING_MODE
-
Sets HALTING_MODE to .TRUE. if an occurrence of the specified exception will
cause program termination, and to .FALSE. otherwise.
SUBROUTINE IEEE_GET_STATUS(STATUS_VALUE)
TYPE(IEEE_STATUS_TYPE),INTENT(OUT) :: STATUS_VALUE
-
Stores the current floating-point status in STATUS_VALUE.
ELEMENTAL SUBROUTINE IEEE_SET_FLAG(FLAG,FLAG_VALUE)
TYPE(IEEE_FLAG_TYPE),INTENT(IN) :: FLAG
LOGICAL,INTENT(IN) :: INTENT(IN) :: FLAG_VALUE
-
Sets the specified exception flag to signalling if FLAG_VALUE is .TRUE., and
to quiet otherwise.
ELEMENTAL SUBROUTINE IEEE_SET_HALTING_MODE(FLAG,HALTING_MODE)
TYPE(IEEE_FLAG_TYPE),INTENT(IN) :: FLAG
LOGICAL,INTENT(IN) :: HALTING_MODE
-
Sets the halting mode for exception FLAG to true if HALTING_MODE is .TRUE.,
and to false otherwise. If the halting mode for an exception is true, an
occurrence of that exception will cause program termination.
SUBROUTINE IEEE_SET_STATUS(STATUS_VALUE)
TYPE(IEEE_STATUS_TYPE),INTENT(IN) :: STATUS_VALUE
-
Restores the current floating-point status to that saved by a preceding
invocation of IEEE_GET_STATUS.
LOGICAL FUNCTION IEEE_SUPPORT_FLAG(FLAG,X)
TYPE(IEEE_FLAG_TYPE),INTENT(IN) :: FLAG
REAL(any kind),OPTIONAL :: X
-
Returns .TRUE. if detection of the specified exception is supported; either
for all real kinds (if X is absent), or for reals of the same kind as X.
LOGICAL FUNCTION IEEE_SUPPORT_HALTING(FLAG)
TYPE(IEEE_FLAG_TYPE),INTENT(IN) :: FLAG
-
Returns .TRUE. if IEEE_SET_HALTING can be used to alter the halting mode of
the specified exception, for all real kinds for which IEEE_SUPPORT_FLAG
returns .TRUE..
SEE ALSO
f95(1),
ieee_arithmetic(3),
ieee_features(3),
nag_modules(3).
BUGS
Please report any bugs found to "support@nag.co.uk", along with any
suggestions for improvements.
© The Numerical Algorithms Group Ltd, Oxford UK. 2001